package com.shujia.core

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD

object Demo06Sample {
  def main(args: Array[String]): Unit = {
    /**
     * sample：转换算子，用于对数据进行抽样
     * 可以接收三个参数：
     * withReplacement：有无放回
     * fraction：抽样比例，小数，最终返回的数据条数并不固定，但是差别不大，在一个数量级
     * seed：随机数种子，如果该值固定，则每次抽样的结果不变，默认等于随机的一个Long类型值
     */
    val conf: SparkConf = new SparkConf()
    conf.setMaster("local")
    conf.setAppName("Demo06Sample")

    val sc: SparkContext = new SparkContext(conf)
    val stuRDD: RDD[String] = sc.textFile("spark/data/stu/students.txt")

    // 对学生数据进行抽样，无放回，抽样10条数据
    stuRDD.sample(withReplacement = false, fraction = 0.01, seed = 1).foreach(println)
  }

}
